#include <stdio.h>
#include <stdlib.h>

// 函数声明
int josephus(int n, int k);

int main() {
    int n, k;

    // 输入学徒的数量n和淘汰间隔k
    printf("请输入学徒的数量n: ");
    scanf("%d", &n);
    printf("请输入淘汰间隔k: ");
    scanf("%d", &k);

    // 调用josephus函数计算幸运学徒的编号
    int luckyApprentice = josephus(n, k);

    // 输出结果
    printf("幸运学徒的编号是: %d\n", luckyApprentice);

    return 0;
}

// 约瑟夫问题求解函数
int josephus(int n, int k) {
    if (n == 1) {
        return 0; // 如果只有一个学徒，返回编号0
    } else {
        // 递归求解
        return (josephus(n - 1, k) + k) % n;
    }
}
